Three-dimensional printer tool systems

ABSTRACT

An extruder or other similar tool head of a three-dimensional printer is slidably mounted along a feedpath of build material so that the extruder can move into and out of contact with a build surface according to whether build material is being extruded. The extruder may be spring-biased against the forward feedpath so that the extruder remains above the build surface in the absence of applied forces, and then moves downward into a position for extrusion when build material is fed into the extruder. In another aspect, modular tool heads are disclosed that can be automatically coupled to and removed from the three-dimensional printer by a suitable robotics system. A tool crib may be provided to store multiple tool heads while not in use.

RELATED MATTERS

This application is a continuation of U.S. patent application Ser. No.14/580,530 filed Dec. 23, 2014, which is a continuation of U.S. patentapplication Ser. No. 14/081,922 filed Nov. 15, 2013, now U.S. Pat. No.9,085,109, where the entire content of each is hereby incorporated byreference.

BACKGROUND

There remains a need for improved printing tools for use inthree-dimensional printers.

SUMMARY

An extruder or other similar tool head of a three-dimensional printer isslidably mounted along a feedpath of build material so that the extrudercan move into and out of contact with a build surface according towhether build material is being extruded. The extruder may bespring-biased against the forward feedpath so that the extruder remainsabove the build surface in the absence of applied forces, and then movesdownward into a position for extrusion when build material is fed intothe extruder.

In another aspect, modular tool heads are disclosed that can beautomatically coupled to and removed from the three-dimensional printerby a suitable robotics system. A tool crib may be provided to storemultiple tool heads while not in use, and the tool crib may beconfigured for various administrative tasks such as detecting thepresence and type of tool in each bin, or various printing tasks such aspreheating tools prior to use or cleaning tools after use. Thethree-dimensional printer may also be advantageously configured toautomatically change tools when an error condition such as a cloggedextruder is detected, or under other circumstances where conditionsindicate that a change in tool is necessary or helpful.

BRIEF DESCRIPTION OF THE FIGURES

The invention and the following detailed description of certainembodiments thereof may be understood by reference to the followingfigures:

FIG. 1 is a block diagram of a three-dimensional printer.

FIG. 2 shows a perspective view of an extruder.

FIG. 3 shows a side view of an extruder.

FIG. 4 shows a cross-section of an extruder.

FIG. 5 shows interior components of an extruder.

FIG. 6 shows a perspective view of an extruder and a mount.

FIG. 7 shows a top view of a tool crib for a three-dimensional printer.

FIG. 8 shows a method for operating a tool crib.

DETAILED DESCRIPTION

All documents mentioned herein are hereby incorporated in their entiretyby reference. References to items in the singular should be understoodto include items in the plural, and vice versa, unless explicitly statedotherwise or clear from the text. Grammatical conjunctions are intendedto express any and all disjunctive and conjunctive combinations ofconjoined clauses, sentences, words, and the like, unless otherwisestated or clear from the context. Thus the term “or” should generally beunderstood to mean “and/or” and so forth.

The following description emphasizes three-dimensional printers usingfused deposition modeling or similar techniques where a bead of materialis extruded in a layered series of two dimensional patterns as “roads,”“paths” or the like to form a three-dimensional object from a digitalmodel. It will be understood, however, that numerous additivefabrication techniques are known in the art including without limitationmultijet printing, stereolithography, Digital Light Processor (“DLP”)three-dimensional printing, selective laser sintering, and so forth.Such techniques may benefit from the systems and methods describedbelow, and all such printing technologies are intended to fall withinthe scope of this disclosure, and within the scope of terms such as“printer”, “three-dimensional printer”, “fabrication system”, and soforth, unless a more specific meaning is explicitly provided orotherwise clear from the context.

FIG. 1 is a block diagram of a three-dimensional printer. In general,the printer 100 may include a build platform 102, an extruder 106, anx-y-z positioning assembly 108, and a controller 110 that cooperate tofabricate an object 112 within a working volume 114 of the printer 100.

The build platform 102 may include a surface 116 that is rigid andsubstantially planar. The surface 116 may provide a fixed, dimensionallyand positionally stable platform on which to build the object 112. Thebuild platform 102 may include a thermal element 130 that controls thetemperature of the build platform 102 through one or more active devices132, such as resistive elements that convert electrical current intoheat, Peltier effect devices that can create a heating or coolingaffect, or any other thermoelectric heating and/or cooling devices. Thethermal element 130 may be coupled in a communicating relationship withthe controller 110 in order for the controller 110 to controllablyimpart heat to or remove heat from the surface 116 of the build platform102.

The extruder 106 may include a chamber 122 in an interior thereof toreceive a build material. The build material may, for example, includeacrylonitrile butadiene styrene (“ABS”), high-density polyethylene(“HDPL”), polylactic acid (“PLA”), or any other suitable plastic,thermoplastic, or other material that can usefully be extruded to form athree-dimensional object. The extruder 106 may include an extrusion tip124 or other opening that includes an exit port with a circular, oval,slotted or other cross-sectional profile that extrudes build material ina desired cross-sectional shape.

The extruder 106 may include a heater 126 (also referred to as a heatingelement) to melt thermoplastic or other meltable build materials withinthe chamber 122 for extrusion through an extrusion tip 124 in liquidform. While illustrated in block form, it will be understood that theheater 126 may include, e.g., coils of resistive wire wrapped about theextruder 106, one or more heating blocks with resistive elements to heatthe extruder 106 with applied current, an inductive heater, or any otherarrangement of heating elements suitable for creating heat within thechamber 122 sufficient to melt the build material for extrusion. Theextruder 106 may also or instead include a motor 128 or the like to pushthe build material into the chamber 122 and/or through the extrusion tip124.

In general operation (and by way of example rather than limitation), abuild material such as ABS plastic in filament form may be fed into thechamber 122 from a spool or the like by the motor 128, melted by theheater 126, and extruded from the extrusion tip 124. By controlling arate of the motor 128, the temperature of the heater 126, and/or otherprocess parameters, the build material may be extruded at a controlledvolumetric rate. It will be understood that a variety of techniques mayalso or instead be employed to deliver build material at a controlledvolumetric rate, which may depend upon the type of build material, thevolumetric rate desired, and any other factors. All such techniques thatmight be suitably adapted to delivery of build material for fabricationof a three-dimensional object are intended to fall within the scope ofthis disclosure.

The x-y-z positioning assembly 108 may generally be adapted tothree-dimensionally position the extruder 106 and the extrusion tip 124within the working volume 114. Thus by controlling the volumetric rateof delivery for the build material and the x, y, z position of theextrusion tip 124, the object 112 may be fabricated in three dimensionsby depositing successive layers of material in two-dimensional patternsderived, for example, from cross-sections of a computer model or othercomputerized representation of the object 112. A variety of arrangementsand techniques are known in the art to achieve controlled linearmovement along one or more axes. The x-y-z positioning assembly 108 may,for example, include a number of stepper motors 109 to independentlycontrol a position of the extruder 106 within the working volume alongeach of an x-axis, a y-axis, and a z-axis. More generally, the x-y-zpositioning assembly 108 may include without limitation variouscombinations of stepper motors, encoded DC motors, gears, belts,pulleys, worm gears, threads, and so forth. For example, in one aspectthe build platform 102 may be coupled to one or more threaded rods by athreaded nut so that the threaded rods can be rotated to provide z-axispositioning of the build platform 102 relative to the extruder 124. Thisarrangement may advantageously simplify design and improve accuracy bypermitting an x-y positioning mechanism for the extruder 124 to be fixedrelative to a build volume. Any such arrangement suitable forcontrollably positioning the extruder 106 within the working volume 114may be adapted to use with the printer 100 described herein.

In general, this may include moving the extruder 106, or moving thebuild platform 102, or some combination of these. Thus it will beappreciated that any reference to moving an extruder relative to a buildplatform, working volume, or object, is intended to include movement ofthe extruder or movement of the build platform, or both, unless a morespecific meaning is explicitly provided or otherwise clear from thecontext. Still more generally, while an x, y, z coordinate system servesas a convenient basis for positioning within three dimensions, any othercoordinate system or combination of coordinate systems may also orinstead be employed, such as a positional controller and assembly thatoperates according to cylindrical or spherical coordinates.

The controller 110 may be electrically or otherwise coupled in acommunicating relationship with the build platform 102, the x-y-zpositioning assembly 108, and the other various components of theprinter 100. In general, the controller 110 is operable to control thecomponents of the printer 100, such as the build platform 102, the x-y-zpositioning assembly 108, and any other components of the printer 100described herein to fabricate the object 112 from the build material.The controller 110 may include any combination of software and/orprocessing circuitry suitable for controlling the various components ofthe printer 100 described herein including without limitationmicroprocessors, microcontrollers, application-specific integratedcircuits, programmable gate arrays, and any other digital and/or analogcomponents, as well as combinations of the foregoing, along with inputsand outputs for transceiving control signals, drive signals, powersignals, sensor signals, and so forth. In one aspect, this may includecircuitry directly and physically associated with the printer 100 suchas an on-board processor. In another aspect, this may be a processorassociated with a personal computer or other computing device coupled tothe printer 100, e.g., through a wired or wireless connection.Similarly, various functions described herein may be allocated betweenan on-board processor for the printer 100 and a separate computer. Allsuch computing devices and environments are intended to fall within themeaning of the term “controller” or “processor” as used herein, unless adifferent meaning is explicitly provided or otherwise clear from thecontext.

A variety of additional sensors and other components may be usefullyincorporated into the printer 100 described above. These othercomponents are generically depicted as other hardware 134 in FIG. 1, forwhich the positioning and mechanical/electrical interconnections withother elements of the printer 100 will be readily understood andappreciated by one of ordinary skill in the art. The other hardware 134may include a temperature sensor positioned to sense a temperature ofthe surface of the build platform 102, the extruder 126, or any othersystem components. This may, for example, include a thermistor or thelike embedded within or attached below the surface of the build platform102. This may also or instead include an infrared detector or the likedirected at the surface 116 of the build platform 102.

In another aspect, the other hardware 134 may include a sensor to detecta presence of the object 112 at a predetermined location. This mayinclude an optical detector arranged in a beam-breaking configuration tosense the presence of the object 112 at a predetermined location. Thismay also or instead include an imaging device and image processingcircuitry to capture an image of the working volume and to analyze theimage to evaluate a position of the object 112. This sensor may be usedfor example to ensure that the object 112 is removed from the buildplatform 102 prior to beginning a new build on the working surface 116.Thus the sensor may be used to determine whether an object is presentthat should not be, or to detect when an object is absent. The feedbackfrom this sensor may be used by the controller 110 to issue processinginterrupts or otherwise control operation of the printer 100.

The other hardware 134 may also or instead include a heating element(instead of or in addition to the thermal element 130) to heat theworking volume such as a radiant heater or forced hot air heater tomaintain the object 112 at a fixed, elevated temperature throughout abuild, or the other hardware 134 may include a cooling element to coolthe working volume.

FIG. 2 shows a perspective view of an extruder. The extruder 200 may bea modular extruder that can be removably and replaceably coupled to athree-dimensional printer such as any of the printers described above.Although various specific mechanical features are described below formodular operation, it will be understood that any features or techniquesthat can be used to securely couple the extruder 200 to thethree-dimensional printer in a manner capable of resisting displacementby extrusion-related forces, while being readily removed and replaced,e.g., by a corresponding robotics system, may be suitably employed inthe housing and other components of the extruder 200.

The extruder 200 may include an extrusion head 202 with a nozzle 204that extrudes a build material such as any of the build materialsdescribed above. In general, the extrusion head 202 may be slidablycoupled within a housing 206 to slide parallel to an axis of a feedpaththrough the housing 206, not illustrated in this figure but generallyrunning vertically from a top of the housing 206 through the nozzle 204of the extruder 200. In general, the extrusion head 202 may be alignedto the axis of the feedpath when the extrusion head 202 (and housing206) is placed for use in the three-dimensional printer.

The housing 206 may rest about the feedpath and fully or partiallyenclose the feedpath as well as a portion of a drive assembly (notshown). As noted above, the housing 206 may be coupled to the extrusionhead 202 in a manner that permits the extrusion head 202 to slide withinthe housing 206. This general feature may be accomplished in a number ofways. For example, the housing 206 may be coupled in a fixedrelationship to the drive assembly and configured for the extrusion headto move within the housing relative to the drive assembly. In anotheraspect, the housing may be coupled in a fixed relationship to theextrusion head 202 and configured for the drive assembly to move withinthe housing (or alternatively stated, for the entire housing to slidablymove relative to the drive assembly). As with the extrusion head 202,the housing 206 may align to the axis of the feedpath when the housing206 is placed for use in a three-dimensional printer. A variety ofregistration features may be included to provide this alignment such asnotches, protrusions, or other mechanical keying features. The housing206 may also or instead include a surface such as the first surface 208or the second surface 210 that are load bearing surfaces to support theextrusion head 202 against displacement along the axis of the feedpath(other than the intended linear displacement within a predeterminedrange) under a force applied by a build material along the feedpath.These surfaces may generally be horizontal or otherwise configured toresist horizontal displacement, such as with the two opposing, concavesurfaces on each side of the housing 206 visible in FIG. 3.

The housing 206 may also include one or more magnets 212 disposed on avertical surface 214 to magnetically couple to a corresponding verticalwall of a three-dimensional printer (with correspondingly positionedmagnets or magnetic material). In this configuration, the one or moremagnets 212 can resist rotational displacement (as indicated by an arrow216) of the housing 206 when placed in the three-dimensional printer. Inthis manner, magnetic forces may be used to retain the housing 206rotationally within a fixture of a three-dimensional printer againstrelatively weak forces of rotation, thus permitting the housing 206 tobe rotated into and out of engagement with the three-dimensional printerby a robotics system. At the same time, surfaces 208, 210 of the housingmay provide load-bearing support against displacement of the housing 206and/or extrusion head 202 by extrusion forces during a three-dimensionalfabrication process. The one or more magnets 212 may be fixed magnetsand/or electromagnets that can be electronically activated anddeactivated to secure the housing 206 as desired.

In general, the housing 206 may be configured to removably andreplaceably couple to a three-dimensional printer in a predeterminedalignment. This may include a predetermined alignment to a driveassembly of the three-dimensional printer, e.g., to couple the driveassembly of the three-dimensional printer to a complementary driveassembly within the housing 206. This may also or instead include apredetermined alignment to an axis of a feedpath for a filament of buildmaterial driven by the drive assembly.

FIG. 3 shows a side view of an extruder. The extruder 300 may be amodular extruder such as any of the modular extruders described above.The axis 318 of the feedpath is illustrated superimposed on the housing306 with a downward arrowhead generally indicating the forward directionof the feedpath. A roller 320 or similar mechanism may be providedwithin the housing 306 to direct a filament of build material into thehousing 306 and along the axis 318 of the feedpath.

A spring 322 such as a coil spring or the like may be included withinthe housing 306 coupling the extrusion head 302 to a drive assembly (notshown). It will be appreciated that this may be a direct coupling, e.g.,where the spring is directly attached to the extrusion head 302 and/ordrive assembly, or this may be an indirect coupling through othermechanical components, structural components, the housing 306, and soforth.

The spring 322 generally serves to bias the extrusion head 302 againstthe forward feedpath so that the extrusion head 302 lifts up toward thedrive assembly in the absence of external forces, and yields to permitthe extrusion head 302 to move down toward a build surface (forward inthe feedpath) a predetermined distance when an extrusion force isapplied by the drive assembly to a filament in the feedpath. In thismanner, the extrusion head 302 may move up and down as driving forcesare applied and released from build material. This configurationadvantageously lifts the extrusion head 302 up and away from an objectbeing fabricated when extrusion is stopped, thereby mitigating dripping,leakage, smearing, and the like of liquefied build material. As afurther advantage, this separation of the extrusion head 302 from anobject may occur automatically due to the spring mechanism and inproportion to the forces applied by the drive assembly, without any needfor additional control circuitry or programming of a three-dimensionalprinter. In another aspect, the spring may be omitted, and forcesapplied by the build material along the feedpath may be used to move theextrusion head 302 forward and backward (e.g., up and down) along thefeedpath between a deployed (down) position and an undeployed (up)position. In this latter embodiment, a reverse movement by a drive motormay be used to pull a filament backward along the feedpath and retractthe extrusion head 302 up and away from a surface or object that isbeing fabricated.

The spring 322 may be any suitable type of spring, and may be coupled ina variety of ways to the extrusion head 302, housing 306, and driveassembly. For example, the spring 322 may be a coil spring wound aboutthe feedpath (i.e., the axis 318 of the feedpath), or the spring 322 maybe offset from the axis 318 of the feedpath and coupled outside thefeedpath between the extrusion head 302 and the drive assembly. Thespring 322 may be coupled directly or indirectly between the extrusionhead and the drive assembly, with the spring 322 biasing the extrusionhead toward the drive assembly with a predetermined spring force. Thespring 322 may also or instead couple the extrusion head 302 to a drivegear of the drive assembly with a predetermined spring force through thehousing 306 or other internal components thereof.

The predetermined spring force may, for example, be less than a forceapplied by a filament to the extrusion head 302 to extrude the filamentfrom the extrusion head 302, so that the spring can yield to permitdownward movement (forward in the feedpath) of the extrusion head 302when extrusion forces are applied. The spring 322 may also or instead beresponsive to an applied force of a filament from a drive gear of thedrive assembly to move the extrusion head 302 into an extruding positionhaving a greater distance between the drive gear and the extrusion head302, that is, forward along the feedpath or downward in FIG. 3. Thespring 322 may also or instead be responsive to a removal of the appliedforce to move into a retracted position having a smaller distancebetween the drive gear and the extrusion head 302.

The spring 322 may in general have any suitable predetermined springforce. For example, the predetermined spring force may be a force thatretains the extrusion head 302 proximal to the drive gear (in the“retracted position” described above) in the absence of an applied forcefrom a filament driven by the drive gear, and the predetermined springforce may permit that extrusion head 302 to move away from the drivegear when the applied force of build material from the drive gearexceeds a predetermined threshold, such as a force less than the forcerequired to extrude the filament through the nozzle of the extrusionhead 302. In one aspect, the spring 322 may have a spring constant ofabout 0.2 pounds, or about a sufficient spring force to support theweight of the extrusion head 302 and associated hardware in an elevatedposition (e.g., closest to the drive assembly) in the absence ofexternal forces when placed for use with an axis of the feedpath throughthe housing 306 and the extrusion head 302 substantially parallel to agravitational force on the extrusion head 302.

In other embodiments, the spring 322 may be usefully configured to biasthe extrusion head 302 away from the drive assembly (i.e., downwardtoward a build platform when placed for use) with any suitable springforce. This spring 322 may be used in combination other springs and oractuators providing contrary forces to achieve any suitable response orbias to the extrusion head 302. For example, the spring 322 may bias theextrusion head 302 away from the drive assembly with a predeterminedspring force so that the extrusion head 302 generally rests in adownward position. During an extrusion process, the tension of buildmaterial along the feedpath may be used to lift the extrusion head 302away from an object, build platform or other surface, e.g., byincrementally reversing a drive gear or the like, in between lengths ofextruded material.

FIG. 4 shows a cross-section of an extruder. In general, the extruder400 may be any of the extruders described above, and may include anextrusion head 402, a housing 406, a spring 422, a drive assembly 424.The extrusion head 402 (and related components such as a heat sink 424rigidly coupled to the extrusion head 402) may be slidably coupled to orwithin the housing 406 so that the extrusion head 402 can move linearlyalong the feedpath as generally indicated by an arrow 426. A mechanicalstop 428 may be provided to limit axial motion of the extrusion head 402along the feedpath within any desired range. More generally, one or moremechanical stops of any suitable configuration may be positioned tolimit an axial travel of the extrusion head relative to the driveassembly and/or within the housing 406. It will be noted that the arrow426 is intended to generally illustrate an axis of motion rather than aparticular range of motion needed for correct operation. In practice,only a small range of motion (e.g., one millimeter or less) is necessaryfor proper operation as contemplated herein and any range of motionconsistent with suitable performance may be delimited by the variousmechanical stops 428. It will further be noted in FIG. 4 that the linearmotion of the extrusion head 402 is constrained by a rigid tube 430(with an internal bore to pass filament) extending into a cylindricalopening proximal to the drive assembly 424. However a wide range ofmechanical configurations are known in the art and may be suitablyadapted to constrain the extrusion head 402 to linear motion along theaxis of the feedpath as contemplated herein, and all such arrangementsare intended to fall within the scope of this disclosure.

In general, the extrusion head 402 may include an input 432 proximal tothe drive assembly 424 and a nozzle 434 distal to the drive assembly 424along the feedpath, with the input 432 coupled to the nozzle 434 by achamber 436 within the extrusion head that coupled the input 432 to thenozzle 434 in fluid communication to pass liquefied build materialtherethrough. As generally described above, the extrusion head 402 maybe moveably coupled to the drive assembly 424 to permit movement betweenthe extrusion head 402 and the drive assembly 424 parallel to an axis ofthe feedpath.

FIG. 5 shows interior components of an extruder. In general, theextruder 500 may be any of the extruders described above, and mayinclude an extrusion head 502 and a drive assembly 524 along an axis ofa feedpath.

The drive assembly 524 may for example including a drive gear 538positioned to drive a filament along a feedpath through the extruder500, e.g., with teeth 540 that grip and propel the filament when theextruder 500 is placed for use in a three-dimensional printer and afilament fed to the drive gear 538. The drive assembly 524 may alsoinclude a coupling 526 exposed by the housing for mechanically attachingto a power source such as a stepper motor or other rotary or mechanicalpower source to rotate the drive gear 538 and propel filament along thefeedpath. The coupling 526 may extend from the housing, or be accessiblethrough an opening in the housing so that, when the housing is placedfor use, the coupling 526 engages the power source. It will beappreciated that whatever magnetic or other couplings are used to retainthe extruder 500 in an operative position in the three-dimensionalprinter should resist displacement by forces exerted on the housing andthe extruder 500 through the coupling 526 during use. It will beunderstood that the term “drive assembly” is intended to be interpretedbroadly, and may include any power train that delivers power to drive afilament along a feedpath, as well as any portion of such a power trainthat might be modularly contained within the extruder 500 orcomplementary portions contained within the three-dimensional printer towhich the modular extruder 500 is removably and replaceably attached.All such meanings are intended to fall within the scope of thisdisclosure unless a more specific meaning is explicitly provided orotherwise clear from the context.

The extruder 500 may include circuitry 542, generally illustrated as aprinted circuit board, and a connector 544 for coupling to athree-dimensional printer when the extruder 500 is placed for use in thethree-dimensional printer. A variety of types of circuitry may beusefully included in the extruder 500. For example, the circuitry 542may identify the extrusion head 502, e.g., by diameter, type, size,shape, serial number, etc., in a manner that can be detected by athree-dimensional printer when the extruder 500 is placed for use. Thisinformation may be provided, for example, through the connector 544, orthe circuitry 542 may include a Radio Frequency Identification tag orother circuitry that can be used by the three-dimensional printer towirelessly obtain identifying information for the extruder 500.

The extruder 500 may also or instead include a sensor 546, or any numberof sensors, coupled in a communicating relationship with the circuitry542 and/or the connector 544, to instrument the extruder 500 in anysuitable manner. For example, the sensor 546 may include a Hall effectsensor or the like configured to detect a movement of the extrusion head502 relative to the drive gear 538, or relative to any other locationwithin or component of the extruder 500 (including the housing, which isnot shown) or a three-dimensional printer to which the extruder 500 isattached. In another aspect, the sensor 546 may include a pressuresensor coupled to the extrusion head 502 and configured to detect acontact force between the extrusion head and a build platform(including, where present, an object on the build platform such as anobject being fabricated). The sensor 546 may similarly include a contactswitch or the like that detects contact with the build platform in abinary fashion.

In one aspect, a second spring 549 may be provided instead of or inaddition to the spring described above that biases the extrusion head502 away from the drive assembly 524, i.e., toward a surface or objectfacing the extrusion head 502. This spring 549 may be manually orelectromechanically actuatable so that it does not counter the otherspring during extrusion, and can be selectively activated during otherprocesses. For example, this spring may be used in a build platformleveling process so that the extrusion head 502 moves against the forceof a spring in a manner detectable by a Hall effect sensor (e.g., thesensor 546) when the extrusion head 502 contacts a surface.

The extruder 500 may include a heating element 548 such as a heatingblock with resistive heaters or the like positioned to liquefy afilament within a portion of the feedpath, such as within a regionimmediately prior to the extrusion head 502 along the feedpath.

The extruder may include a filament detector 550, which may include anoptical beam, contact switch, or other electromechanical sensor(s) todetect the presence of a filament along the feedpath. A rotary encoder552 of any suitable configuration may also be used, either alone or incombination with the filament detector 550 to provide diagnosticinformation on operation of the extruder 500. The rotary encoder 552 maybe used, e.g., to detect movement of a drive motor, a drive gear, afree-wheeling roller along the filament path, or a moving filament, orsome combination of these to ensure expected operation of the extruder500. For example, a variety of diagnostic tests may be initially,continuously, or intermittently performed to ensure that the movement ofa filament is consistent with a movement expected based on movement of acorresponding drive gear or stepper motor. Similarly, a Hall effectsensor or the like may be employed to ensure expected movement of theextrusion head 502 under various operating conditions. In anotheraspect, any of the foregoing may be used to detect when the extrusionhead 502 has contacted a surface, such as by detecting a lack ofvertical movement when an extrusion force is applied.

In general, a three-dimensional printer used with the extruder 500 maybe any of the three-dimensional printers described above. Thethree-dimensional printer may include a build platform (as described forexample with reference to FIG. 1) positioned to receive a build materialfrom the extrusion head 502. The three-dimensional printer may alsoinclude a robotic system such as the x-y-z positioning assemblydescribed above with reference to FIG. 1 (also referred to herein as an“x-y-z positioning system”).

FIG. 6 shows a perspective view of an extruder and a mount. In generalthe extruder 602, which may be any of the extruders described above, maybe removably and replaceably coupled to a mount 604 of a robotic systemof a three-dimensional printer or tool crib. The mount 604 may generallyinclude magnetic couplings 606 in complementary positions to the magnets612 of the extruder 602. The mount 604 may provide one or more surfaces608 that provide horizontal shelves or other shapes to verticallysupport the extruder 602 so that the extruder 602 can be retained in avertical position along a feedpath during extrusion. A portion of thedrive assembly 610 may extend from the extruder 602 so that it canengage a motor or the like through an opening 614 in the mount 604.

In one aspect, the magnets 612 on the extruder 602 may be aligned to themagnetic couplings 606 of the mount 604 when the extruder 602 is placedfor use in the mount 604 so that a strong magnetic force retains theextruder 602 against lateral or rotational displacement (asdistinguished from an axial force along the feedpath) out of the mount604. In another aspect, the magnets 612 may be slightly misaligned tothe magnetic couplings 606 so that a weaker force retains the extruder602 against lateral or rotational displacement out of the mount 604. Inanother aspect, the magnetic couplings 606 and or magnets 612 mayinclude electro-magnets operable to provide a controllable magneticcoupling of the extruder 602 to the mount 604.

FIG. 7 is a top view of a tool crib system for a three-dimensionalprinter. In general, any modular tools, such as the extruders describedabove or any other tools (generally and collectively referred to belowsimply as “tools”) that are removably and replaceably connectable to athree-dimensional printer may be stored in bins of a tool crib formanaging tool inventory and interchanging tools during operation of thethree-dimensional printer. The tool crib system 700 may include a toolcrib 702 containing a number of bins 704 for storing tools 706. The toolcrib 702 may be positioned adjacent to a build platform 708 of athree-dimensional printer, and the tool crib system 700 may include arobotic system 710 for picking and placing tools 706 in the bins 704 sothat the three-dimensional printer can interchangeably use the variousmodular tools contained in the tool crib 702. The three-dimensionalprinter associated with the build platform 708 may optionally include asecond robotic system 712 (such as the x-y-z positioning assemblydescribed above) that cooperates with the robotic system 710 of the toolcrib 702 to exchange tools for the three-dimensional printer, or arobotic system such as the robotic system 710 or the second roboticsystem 712 may be shared between the tool crib 702 and thethree-dimensional printer to provide a single robotic system for theshared workspace of the tool crib 702 and printer, such as the operatingenvelope of an x-y-z positioning system.

The tool crib 702 may be any suitable combination of containers or otherdefined spaces for receiving and storing tools 706. The tool crib 702may include doors or the like to enclose tools 706 while not in use, andmay include an open bottom to receive material cleaned from or otherwiserunning from the tools 706 or a closed bottom, which may further containa cleaning liquid or other fluid in which a tool 706 can be stored.

The bins 704 may generally be shaped and sized to hold tools 706 for athree-dimensional printer. The bins 704 may be various sizes and havevarious shapes according to whether the bins 704 are for a specificmodular tool or for a variety of different tools.

The tools 706 may include any tools suitable for use with athree-dimensional printer. This may, for example, include an extrudersuch as any of the extruders described above. The tools 706 may includean assortment of different extruders where useful to extrude differentthicknesses or shapes of material, or to extrude different types ofbuild material. Thus, for example, the tools 706 may include two or moreextruders having different extrusion diameters, different inputdiameters (e.g., where different diameter filaments are used), differentextrusion shapes, and so forth. The tools 706 may also include a numberof extruders of the same type in order to facilitate color changing,tool cleaning, error recovery (e.g., for a clogged extruder), and soforth. Other tools may also be provided, such as a camera, a millingtool, a laser cutter, a syringe, a heat or light source (e.g., forcuring), a finishing tool, and so forth. While such tools 706 may have avariety of shapes, they may also advantageously have a common mechanicalinterface for coupling to the robotic system 710, 712 of the tool crib702 or three-dimensional printer. One or more of the tools 706 mayinclude one or more magnets as generally described above for handling bythe robotic system.

The build platform 708 may generally be any of the build platforms orother build surfaces described above.

The robotic system 708 of the three-dimensional printer may include amount 714 which may include any electro-mechanical features orconfigurations to removably and replaceably receive a tool 706, e.g., bycoupling to a housing of the tool 706 as described above, during use bythe three-dimensional printer. This may, for example, include mechanicalfeatures keyed to the tool 706, fixed or electric magnets to hold andrelease the tool 706, and so forth. The robotic system 710 of the toolcrib 702 may include a similar or identical mount 716 to pick and placetools 706 from the tool crib, and to provide tools 706 to and receivetools 706 from the mount 714 of the robotic system 708 of thethree-dimensional printer. Where a single, shared robotic system isused, a single mount may also be employed, or the single robotic systemmay have a number of mounts for concurrent use of multiple tools.

The mount 714 of the three-dimensional printer may be configured toposition a tool 706 such as an extrusion head (when coupled to the mount714) relative to the build platform under control of thethree-dimensional printer. Thus the tool 706 may generally be moved andoperated within the build volume of the three-dimensional printer usingthe x-y-z positioning assembly or other robotics of thethree-dimensional printer. In this configuration, the robotic system 710of the tool crib 702 may operate as a second robotic system configuredto remove the tool 706 from the mount 714, and to replace the tool 706or any other one of the tools 706 to the mount 714. Similarly therobotic system 710 of the tool crib 702 may be configured to select oneof the number of tools 706 from the tool crib 702 and to couple theselected tool to the mount 714 of the three-dimensional printer. In thismanner, the robots 708, 710 may affect an exchange of modular tools fromthe tool crib 702 for the three-dimensional printer. This exchange mayadvantageously be performed in or near the space between the buildplatform 708 and the tool crib 702 in order to reduce the travelrequired by each of the robotic systems 708, 710.

The tool crib system 700 may include a sensor system 718 to detect apresence of tools in the bins 704. The sensor system 718 may usefullyacquire data on any relevant aspects of the tool crib system 700, thestatus of the bins 704, the status of tools 706 in the bins 704, and soforth. For example, the sensor system 718 may be configured to identifya type of tool in each of the bins, such as through machine vision orthrough radio frequency tagging or other identification circuitry on thetools 706. The sensor system 718 may also or instead provide tool statusinformation such as a preheating status, a cleanness status, or otherdiagnostics, any of which may be used by the tool crib system 700 tomanage and deploy tools 706 within the tool crib 702. While depicted asingle component in FIG. 7, it will be appreciated that the sensorsystem 718 may include any number and type of individual sensors usefulfor gathering information about tools 706, including without limitationcameras, thermal cameras, ultrasonic sensors, infrared sensors,electromechanical sensors, radio frequency sensors, and so forth, any ofwhich may be positioned together or separately at suitable locationsthroughout the tool crib system 700, including in or around the bins604.

The tool crib system 700 may include an active element 720 to manipulateone of the tools 706 in one of the bins 704. The active element 720 mayinclude any electromechanical devices or combination of devices usefulfor actively manipulating one of the tools 706. For example, the activeelement 720 may include a heating element that can be used, e.g., topreheat the tool 706, to clean the tool 706 such as by purging extrafilament, and so forth. The active element 720 may include a toolcleaner with components such as a wiper to remove excess build materialfrom an extruder or a nozzle and a supply of cleaning fluid to clean amilling tool. In one aspect, the tool cleaner may be configured toextrude remaining filament from within an extruder in a purge operationor the like. It will be understood that the tool crib system 700 mayinclude any number of active elements 720 including, for example, thesame type of active element 720 for each of the bins 704 or differentcombinations of different types of active elements 720 for differentones of the bins 704 or all of the bins 704. In this manner, the toolcrib 702 may be equipped for various combinations of tools that might beused by the three-dimensional printer.

The tool crib system 700 may include a controller 722 configured tocontrol operation of the sensor system, the active element, and therobotic system. It will be understood that the controller 722 may be acontroller of a three-dimensional printer as generally described above,or a separate controller for autonomous operation of the tool cribsystem 700, or some combination of these. In the stand-alone tool cribconfiguration, the controller 722 may include an interface forcommunicating with a three-dimensional printer, in which case thecontroller 722 may provide diagnostics and status information throughthe interface, and receive instructions from the controller 722 foroperation of the tool crib 702.

In general, the controller 722 may provide various degrees of autonomyand intelligence to a three-dimensional fabrication process. Forexample, the controller 722 may actively monitor and maintain aninventory of tools that can be reported to the three-dimensional printeror a separate device such as a personal computer or mobile computingdevice (e.g., cellular phone, tablet, laptop), or the controller 722 maysimply manage a process of deterministically accepting items from aprinter and storing them as directed by the printer. Similarly, thecontroller 722 may provide high-level programming for receiving arequest for a type of tool and determining whether and where such a toolis in the tool crib so that the tool can be provide to the printer, orthe controller 722 may support low-level programming, e.g., for controlof individual motors and actuators by an external user such as athree-dimensional printer, or some combination of these. At the sametime, the controller 722 may store information locally concerningvarious tools, or the controller 722 may simply provide data passthrough from various sensors and actuators of the tool crib, again foruse by an external resource such as a nearby three-dimensional printer.Thus a variety of techniques for advantageously incorporating a toolcrib into a three-dimensional fabrication process will be readilyapparent to one of ordinary skill in the art, and all such techniquesthat can be suitably employed for the various functions and featuresdescribed herein are intended to fall within the scope of using thecontroller 722 as described herein unless a different meaning isexplicitly provided or otherwise clear from the context.

The controller 722 and a robotic system (such as the robotic system 708of the three-dimensional printer and/or the robotic system 710 of thetool crib 702) may be configured to pick one of the tools 706 from thetool crib 702 and present the one of the tools 706 to an adjacentthree-dimensional printer, which is generally represented in FIG. 7 bythe build platform 708, and may include any of the three-dimensionalprinters described above. The controller 722 and the robotic system maybe further configured to retrieve the tool 706 from theadjacent-three-dimensional printer and place the tool 706 back in one ofthe bins 704 of the tool crib 702. In this manner, tools for thethree-dimensional printer may be interchanged using a supply of tools inthe tool crib 702, all under control of the controller 722 incooperation with the three-dimensional printer.

As noted above, the robotic system used to exchange tools 706 betweenthe tool crib 702 and the three-dimensional printer may include an x-y-zpositioning system of the three-dimensional printer. The tool crib 702may be positioned within an operating envelope of the x-y-z positioningsystem, as generally indicated by the boundary of the tool crib system700, or the tool crib 702 may be positioned adjacent to the operatingenvelope of the x-y-z positioning system, with an additional roboticsystem 710 for the tool crib 702 to manage hand-offs between the toolcrib 702 and the three-dimensional printer.

The controller 722 may in general operate the sensor system 718 andactive elements 720 of the tool crib system 702 and perform relatedfunctions. For example, the controller 722 may be configured to preheatone of the tools 706 with an active element 720 such as a heatingelement, or to clean one of the tools 706 with a tool cleaner.Similarly, the controller 722 may be configured to scan the bins 704 toprovide data to a three-dimensional printer concerning inventory andavailability of tools 706 within the tool crib 702. In general, thecontroller 722 may respond automatically to certain requests from theprinter. For example, the controller 722 may preheat a tool thatrequires preheating without regard to whether a request for the toolfrom the three-dimensional printer includes a preheat request. Asanother example, the controller 722 may verify that a tool 706 has beencleaned before providing the tool to the three-dimensional printer foruse.

The tool crib system 700 may augment operation of a three-dimensionalprinter in a variety of ways. For example, where a three-dimensionalprinter is adjacent to the tool crib 702, the three-dimensional printermay be configured to detect a failure of an extruder (e.g., resultingfrom a clog, leak, failure to heat up, or other malfunction). Thethree-dimensional printer may then be further configured to replace theextruder with a second extruder from the tool crib 702, e.g., by issuinga tool change instruction or the like to the controller 722.

The tool crib system 700 may include a purge bin 724 separate from theother bins 704 to receive extruded filament from the extruder. Where thetool crib 702 is within the operating envelope of the robotic system 708for the three-dimensional printer, the printer may simply move to aposition over the purge bin 724 and advance build material until theextruder is empty. The printer may also extrude a second build materialto purge an interior of the extruder, which second build material may besoluble or otherwise removable from the extruder prior to use of theextruder with a new build material.

FIG. 8 shows a method for operating a tool crib. The tool crib, whichmay be any of the tool cribs described above, may include a number oftools in a number of bins for use in cooperation with athree-dimensional printer.

As shown in step 802, the method 800 may include receiving a tool changerequest. The request may be initiated under a variety of conditions. Forexample, the request may be initiated by a three-dimensional printer dueto a change in build material or a new task identified in fabricationinstructions being executed by the three-dimensional printer. In anotheraspect, the request may be initiated in response to an error conditiondetected by the three-dimensional printer, such as a clogged extruder, aheating failure, or other error condition. However originated, therequest may be received at a controller for a tool crib, which mayinitiate responsive action.

As shown in step 804, the method 800 may include receiving a first toolfrom the three-dimensional printer. This may be an extruder such as anyof the extruders described above, or any other suitable tool such as acamera, milling tool, cleaning tool, measuring tool, finishing tool, andso forth. This may include operating a robotic system to retrieve thefirst tool from a mount (e.g., a mount with magnetic couplings for thefirst tool) on the three-dimensional printer as generally contemplatedabove. This may also or instead include managing a hand off of the firsttool from a robotic system of the three-dimensional printer to a secondrobotic system of the tool crib. The tool may be placed in a bin of thetool crib using the robotic system(s), or positioned in an intermediatelocation for handling such as cleaning, inspection, and the like.

As described above, this step may use a robotic system of thethree-dimensional printer, a robotic system of the tool crib, or somecombination of these. For example, this may include retrieving the firsttool from a build volume of the three-dimensional printer with a roboticsystem of the tool crib, or passing the first tool into an operatingenvelope of the tool crib for a hand off to a robotic system of the toolcrib.

As shown in step 806, the method 800 may include cleaning the firsttool. This may include a variety of cleaning steps such as disposing thefirst tool or portions thereof in a cleaning solving, or heating thefirst tool to a high temperature to liquefy or vaporize contaminants.This may also or instead include extruding build material from the firsttool using any suitable techniques, which may include displacing thebuild material with a cleaning material under pressure. In certainapplications, cleaning the tool may also include sterilizing the tool,coating the tool, or otherwise treating the tool for an intended use.

As shown in step 808, the method 800 may include receiving a requestfrom the three-dimensional printer for a second tool. This may, forexample, include a request based upon the state of a build, such aswhere a new build material is to be used or where a finishing step isrequired, or this may be a request based upon a detected failure of acurrent tool in the three-dimensional printer, or for any other reason.Regardless of the reason, the tool crib controller may respond withappropriate action to identify or prepare an appropriate tool.

As shown in step 810, the method 800 may include preheating the secondtool for use in an extrusion process. This may, for example, includepreheating the second tool to an extrusion temperature applied by thethree-dimensional printer. In one aspect, a preheat temperature may beprovided by the three-dimensional printer with a tool request. Inanother aspect, the tool crib may automatically determine a preheattemperature based upon, e.g., a type of the tool or externally providedinformation concerning a type of build material. It will be appreciatedthat preheating is only an example of a preparatory step, and that anyother suitable process such as cooling, cleaning, lubricating, or soforth may also or instead be performed in order to ready the second toolfor use by the three-dimensional printer.

As shown in step 812, the method 800 may include presenting the secondtool to the three-dimensional printer. This may include moving thesecond tool into a build volume of the three-dimensional printer with arobotic system of the tool crib, with a robotic system of thethree-dimensional printer, or some combination of these. The tool cribmay also include a locking mechanism that secures tools in a lockedstate when not in use, and the step of presenting such a tool mayinclude releasing the second tool from a locked state within the toolcrib for retrieval by a robotic system of the three-dimensional printer,such as be releasing a latch or deactivating an electromechanicalcoupling.

The methods or processes described above, and steps thereof, may berealized in hardware, software, or any combination of these suitable fora particular application. The hardware may include a general-purposecomputer and/or dedicated computing device. The processes may berealized in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors, or otherprogrammable device, along with internal and/or external memory. Theprocesses may also, or instead, be embodied in an application specificintegrated circuit, a programmable gate array, programmable array logic,or any other device or combination of devices that may be configured toprocess electronic signals. It will further be appreciated that one ormore of the processes may be realized as computer executable codecreated using a structured programming language such as C, an objectoriented programming language such as C++, or any other high-level orlow-level programming language (including assembly languages, hardwaredescription languages, and database programming languages andtechnologies) that may be stored, compiled or interpreted to run on oneof the above devices, as well as heterogeneous combinations ofprocessors, processor architectures, or combinations of differenthardware and software.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, means for performing thesteps associated with the processes described above may include any ofthe hardware and/or software described above. All such permutations andcombinations are intended to fall within the scope of the presentdisclosure.

It should further be appreciated that the methods above are provided byway of example. Absent an explicit indication to the contrary, thedisclosed steps may be modified, supplemented, omitted, and/orre-ordered without departing from the scope of this disclosure.

The method steps of the invention(s) described herein are intended toinclude any suitable method of causing such method steps to beperformed, consistent with the patentability of the following claims,unless a different meaning is expressly provided or otherwise clear fromthe context. So for example performing the step of X includes anysuitable method for causing another party such as a remote user or aremote processing resource (e.g., a server or cloud computer) to performthe step of X. Similarly, performing steps X, Y and Z may include anymethod of directing or controlling any combination of such otherindividuals or resources to perform steps X, Y and Z to obtain thebenefit of such steps.

While particular embodiments of the present invention have been shownand described, it will be apparent to those skilled in the art thatvarious changes and modifications in form and details may be madetherein without departing from the spirit and scope of this disclosureand are intended to form a part of the invention as defined by thefollowing claims, which are to be interpreted in the broadest senseallowable by law.

What is claimed is:
 1. A system comprising: a three-dimensional printer;a number of tools including an extruder; a tool crib including a numberof bins to receive the number of tools; a sensor system to detect apresence of the tools in the bins; an active element to manipulate oneof the tools in one of the bins, the active element including a heatingelement; a robotic system to pick and place the number of tools in thenumber of bins, the robotic system including an x-y-z positioning systemhaving an operating envelope that provides a shared workspace for thetool crib and the three-dimensional printer; and a controller configuredto control operation of the sensor system, the active element, and therobotic system, wherein the controller is configured to preheat theextruder with the heating element prior to use in a three-dimensionalprinting process, and wherein the controller is configured to clean theextruder within the tool crib.
 2. The system of claim 1, wherein thenumber of tools includes a camera.
 3. The system of claim 1, wherein thenumber of tools includes a milling tool.
 4. The system of claim 1,wherein the number of tools includes two or more extruders havingdifferent extrusion diameters.
 5. The system of claim 1, wherein thenumber of tools includes two or more extruders having different inputdiameters.
 6. The system of claim 1, wherein the number of toolsincludes two or more extruders having different extrusion shapes.
 7. Thesystem of claim 1, wherein the sensor system is configured to identify atype of tool in each of the bins.
 8. The system of claim 1, wherein theactive element includes a tool cleaner.
 9. The system of claim 8,wherein the tool cleaner includes a wiper to remove excess buildmaterial from the extruder.
 10. The system of claim 8, wherein the toolcleaner is configured to extrude remaining filament from the extruder.11. The system of claim 8, further comprising a purge bin to receiveextruded filament from the extruder.
 12. The system of claim 1, whereinthe three-dimensional printer is configured to detect a failure of anextruder and to replace the extruder with a second extruder from thetool crib.
 13. The system of claim 1, wherein the controller includes acontroller of the three-dimensional printer.
 14. The system of claim 1,wherein the controller includes an interface for communicating with thethree-dimensional printer to perform one or more of: providingdiagnostic information through the interface, providing statusinformation through the interface, and receiving instructions foroperation of the tool crib through the interface.
 15. The system ofclaim 1, wherein the robotic system includes one or more magneticcouplings for handling the number of tools.
 16. The system of claim 1,wherein at least one of the number of tools includes one or more magnetsfor handling by the robotic system.
 17. The system of claim 1, whereinthe controller is configured to clean the extruder by displacing a buildmaterial in the extruder under pressure.
 18. The system of claim 1,wherein the controller is configured to clean the extruder bysterilizing the extruder.
 19. The system of claim 1, wherein thecontroller is configured to clean the extruder by heating the extruderto a high temperature.
 20. A system comprising: a three-dimensionalprinter; a number of tools including an extruder; a tool crib includinga number of bins to receive the number of tools; a sensor system todetect a presence of the tools in the bins; an active element tomanipulate one of the tools in one of the bins, the active elementincluding a heating element; a robotic system to pick and place thenumber of tools in the number of bins, the robotic system including anx-y-z positioning system of the three-dimensional printer, wherein thetool crib and the three-dimensional printer are positioned within ashared workspace accessible by the x-y-z positioning system; and acontroller configured to control operation of the sensor system, theactive element, and the robotic system, wherein the controller isconfigured to preheat the extruder with the heating element prior to usein a three-dimensional printing process, and wherein the controller isconfigured to clean the extruder within the tool crib.